package co.edu.usbcali.rebio.presentation.backEndBeans;

import java.util.ArrayList;
import java.util.List;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpServletRequest;

import co.edu.usbcali.rebio.modelo.RebAgenteBiologico;
import co.edu.usbcali.rebio.modelo.RebHacienda;
import co.edu.usbcali.rebio.presentation.businessDelegate.BusinessDelegatorView;
import co.edu.usbcali.rebio.utilities.FacesUtils;

import com.icesoft.faces.async.render.RenderManager;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.context.effects.JavascriptContext;

public class RebReporteSiete {
	
	
	public HtmlInputText txtHacienda;
	private HtmlInputText txtSurCodigo = new HtmlInputText();
	private HtmlInputText txtHadId_RebHacienda;
	private String codigoHad;
	private HtmlCommandButton limpiar;
	private boolean btnhacienda = false;
	private HtmlInputText txtNombreHacienda;
	private List<RebHacienda> lasHaciendas = new ArrayList<RebHacienda>();
	
	private boolean flag = true;
	private HtmlCommandButton btnAceptar;
	private boolean btnErrorf = false;
	private RenderManager renderManager;
	private HtmlDataTable tablaHacienda = new HtmlDataTable();
	private HtmlCommandButton btnLupa;
	private String nomHacienda;
	
	
	public String action_Cargar2() throws Exception {
    	String codigoHacienda = txtSurCodigo.getValue().toString();
    	try {
			RebHacienda hacienda = BusinessDelegatorView.getRebHacienda(Integer.parseInt(codigoHacienda));
			txtHacienda.setValue(hacienda.getHadNombre());
			codigoHad = hacienda.getHadId().toString();
			btnhacienda = false;
			
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        return "";
    }
	
	public String action_abrir() {
		btnhacienda = true;
		return "";
	}
    
    public String action_cerrar() {
		btnhacienda = false;
		return "";
	}	
    
    public String action_cerrar2(){
		btnErrorf = false;
		return "";
	}
    
    public String action_clear() {
    	

    	txtHacienda.setValue(null);
    	txtHacienda.setDisabled(false);
        codigoHad = null;
	
        return "";
    } 
    
    public String action_consultarHacienda() {
		try {

			String nombreHacienda = txtNombreHacienda.getValue().toString().toUpperCase();
			if (nombreHacienda == null || nombreHacienda == "") {
				lasHaciendas = BusinessDelegatorView.findByCriteriaInRebHacienda(null,null,null, true);
			} else {
				Object variables[] = {"hadNombre",true,nombreHacienda + '%',"Like"};
				lasHaciendas = BusinessDelegatorView.findByCriteriaInRebHacienda(variables, null, null, true);
				//System.out.println("Aqui");
			}
			flag = true;
			renderManager.getOnDemandRenderer("rebSuerteView")
			.requestRender();

		} catch (Exception e) {
			// TODO: handle exception
		}

		return "";
	}

	
	public String action_generarReporte() throws Exception{
		
		try{
			
			FacesContext fc = FacesContext.getCurrentInstance();
			ExternalContext ec = fc.getExternalContext();
			HttpServletRequest sr = ((HttpServletRequest)ec.getRequest());
			String scheme = sr.getScheme();
			String serverName = sr.getServerName();
			int port = sr.getServerPort();
			String contextPath = sr.getContextPath();
			
			String url = scheme+"://"+serverName+":"+port+contextPath;
			
			String hac = (String) txtHacienda.getValue();
			
			
			
			String hacienda = "";
        	
        	if (hac == null || hac == ""){
        		throw new Exception("El Nombre de la Hacienda es de car&#225;cter obligatorio");
        		
			}else{
				hacienda = hac;
			}
        	
        	if(hacienda.trim().equals("") || hacienda == null){
				
				throw new Exception("El Nombre de la Hacienda es de car&#225;cter obligatorio");
			}
			
			
			
			String reportParams = "hacienda="+hacienda;
		
			String params = 
				  "'"+
				  url+"/servlet/ReporteSietePDF?"+
				  	reportParams +
				  "', " +
				  "'reportWindow', " +
				  "'" +
				  "width=1024" +
				  ",height=768" +
				  ",status=no" +
				  ",toolbar=no" +
				  ",menubar=no" +
				  ",location=no" +
				  ",scrollbars=yes" +
				  "'"; 
			
//			System.out.println("window.open("+params+");");
			
			//llamar al servlet SatReportServlet
			//JavascriptContext.addJavascriptCall(fc,"window.open("+params+");");
			JavascriptContext.addJavascriptCall(fc,"location.href="+params+";");	
			
			
		}catch (Exception e) {
			btnErrorf = true;
			btnAceptar.requestFocus();
			FacesUtils.addErrorMessage(e.getMessage());
			
		}
		
		
		
		
		return "";
		
	}
	
	public String action_generarReporteXLS(){
		
try{
			
			FacesContext fc = FacesContext.getCurrentInstance();
			ExternalContext ec = fc.getExternalContext();
			HttpServletRequest sr = ((HttpServletRequest)ec.getRequest());
			String scheme = sr.getScheme();
			String serverName = sr.getServerName();
			int port = sr.getServerPort();
			String contextPath = sr.getContextPath();
			
			String url = scheme+"://"+serverName+":"+port+contextPath;
			
			String hac = (String) txtHacienda.getValue();
			
			
			
			String hacienda = "";
        	
        	if (hac == null || hac == ""){
        		throw new Exception("El Nombre de la Hacienda es de car&#225;cter obligatorio");
        		
			}else{
				hacienda = hac;
			}
        	
		
			if(hacienda.trim().equals("") || hacienda.trim().equals(null)){
				
				throw new Exception("El Nombre de la Hacienda es de car&#225;cter obligatorio");
			}
			
			
			
			String reportParams = "hacienda="+hacienda;
		
			String params = 
				  "'"+
				  url+"/servlet/ReporteSieteXLS?"+
				  	reportParams +
				  "', " +
				  "'reportWindow', " +
				  "'" +
				  "width=1024" +
				  ",height=768" +
				  ",status=no" +
				  ",toolbar=no" +
				  ",menubar=no" +
				  ",location=no" +
				  ",scrollbars=yes" +
				  "'"; 
			
//			System.out.println("window.open("+params+");");
			
			//llamar al servlet SatReportServlet
			//JavascriptContext.addJavascriptCall(fc,"window.open("+params+");");
			JavascriptContext.addJavascriptCall(fc,"location.href="+params+";");	
			
			
		}catch (Exception e) {
			btnErrorf = true;
			btnAceptar.requestFocus();
			FacesUtils.addErrorMessage(e.getMessage());
			
		}
		
		
		
		
		return "";
		
	}
	
	
	public HtmlInputText getTxtHacienda() {
		return txtHacienda;
	}

	public void setTxtHacienda(HtmlInputText txtHacienda) {
		this.txtHacienda = txtHacienda;
	}

	public HtmlInputText getTxtSurCodigo() {
		return txtSurCodigo;
	}

	public void setTxtSurCodigo(HtmlInputText txtSurCodigo) {
		this.txtSurCodigo = txtSurCodigo;
	}

	public HtmlInputText getTxtHadId_RebHacienda() {
		return txtHadId_RebHacienda;
	}

	public void setTxtHadId_RebHacienda(HtmlInputText txtHadIdRebHacienda) {
		txtHadId_RebHacienda = txtHadIdRebHacienda;
	}

	public String getCodigoHad() {
		return codigoHad;
	}

	public void setCodigoHad(String codigoHad) {
		this.codigoHad = codigoHad;
	}

	public boolean isBtnhacienda() {
		return btnhacienda;
	}

	public void setBtnhacienda(boolean btnhacienda) {
		this.btnhacienda = btnhacienda;
	}

	public HtmlInputText getTxtNombreHacienda() {
		return txtNombreHacienda;
	}

	public void setTxtNombreHacienda(HtmlInputText txtNombreHacienda) {
		this.txtNombreHacienda = txtNombreHacienda;
	}

	public List<RebHacienda> getLasHaciendas() {
		return lasHaciendas;
	}
	

	public void setLasHaciendas(List<RebHacienda> lasHaciendas) {
		this.lasHaciendas = lasHaciendas;
	}
	
	public boolean isFlag() {
		return flag;
	}

	public void setFlag(boolean flag) {
		this.flag = flag;
	}
	
	
	public HtmlCommandButton getBtnAceptar() {
		return btnAceptar;
	}

	public void setBtnAceptar(HtmlCommandButton btnAceptar) {
		this.btnAceptar = btnAceptar;
	}

	public boolean isBtnErrorf() {
		return btnErrorf;
	}

	public void setBtnErrorf(boolean btnErrorf) {
		this.btnErrorf = btnErrorf;
	}

	public RenderManager getRenderManager() {
		return renderManager;
	}

	public void setRenderManager(RenderManager renderManager) {
		this.renderManager = renderManager;
	}

	public HtmlDataTable getTablaHacienda() {
		return tablaHacienda;
	}

	public void setTablaHacienda(HtmlDataTable tablaHacienda) {
		this.tablaHacienda = tablaHacienda;
	}

	public HtmlCommandButton getBtnLupa() {
		return btnLupa;
	}

	public void setBtnLupa(HtmlCommandButton btnLupa) {
		this.btnLupa = btnLupa;
	}

	public HtmlCommandButton getLimpiar() {
		return limpiar;
	}

	public void setLimpiar(HtmlCommandButton limpiar) {
		this.limpiar = limpiar;
	}

}
